package com.zm.duotai;
/*某小型公司主要有三类工作人员(Worker)：经理(Manager)、兼职技术人员(Technician)和兼职推销员(Salesman)
1. 三类员工有共同属性：姓名（name）、年龄(age)、性别(genger)、编号(no) 、身份证号(sid),身高(length)、体重(weight)。
2. 提供一个参数化构造方法;
3. 相关方法：获取月薪的public double getPay()方法、显示个人信息的public String toString()方法。
4. 人员编号基数为1000，每创建一个人员实例对象，其编号属性的值顺序加1。
5. 月薪计算方法：
   1) 经理拿固定月薪8000元；
   2) 兼职技术人员按每小时100元领取月薪；
   3) 兼职推销人员的月薪按当月的销售额的4%提成。
6. 分别创建一个经理，一个兼职技术人员，一个兼职推销员，分别显示他们的信息及月薪。

二、<1>编写员工(Employee)类，该类有私有属性包括:id,员工名称，员工入职日期(String)类型，员工所在部门，员工工资，员工奖金。
   要求为私有属性提供public访问方法。
   并提供两个重载的构造方法，一个有参，分别给所有属性赋值。
    <2>定义员工写程序方法pulbic  void writeProgram();
    <3>定义一个主方法，在主方法中分别生成若干员工,并调用他们方法。

三、封装Student单例模式（饿汉式和懒汉式二种）
   编写Student类，有学号、年龄、姓名、班级属性。有study()方法。
   使用饿汉式和懒汉式把Student类封装成单例模式。
   测试类中获得Student对象，调用study方法进行测试。

四、请q编码实现公司员工的继承关系：
   公司（Company）具有行为：姓名（name）、年龄（age）；
   公司包括：行政部门，开发部门；这些部门的工种工作方式各不相同（行政部门：统计考勤，开发部门：疯狂敲代码）；
   但发工资的行为是一致的。请通过继承实现以上需求，并编写测试类进行测试。
五、数组中，最大的与第一个元素交换，最小的与最后一个元素交换，输出数组
六、有n个整数，使其前面各数顺序向后移m个位置，最后m个数变成最前面的m个数。
七、 有一个已经排好序的数组。现输入一个数，要求按原来的规律将它插入数组中。
八、1、编写管理员类属性包括:id,姓名,性别，年龄,家庭住址，手机号码，登录名称，登录密码，状态,

   并提供displayInfo()方法，用于输各属性信息。创建对象并测试其方法的正确性。*/
public class ObjectTest {
    public static void main(String[] args) {
        Person manger=new Manger("张三",18,'男',3600000,180,150);
        Person salesman= new Salesman("张三2",19,'男',28888,170,160,6800);
        Person technician=new Technician("张三3",20,'男',160000,160,140,60);
        System.out.println(manger.toString());
        System.out.println(salesman.toString());
        System.out.println(technician.toString());



    }
}
